From 03dcd3d9464726ae39e5210bbb5174cede413720 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 26 Oct 2017 22:38:57 +0200 Subject: [PATCH] Revert "bpf: one perf event close won't free bpf program attached ..." This reverts commit dcc738d393156dd29ed961ecefe13d96ed5f782f, which was commit ec9dd352d591f0c90402ec67a317c1ed4fb2e638 upstream. It introduces an ABI break that's not easily avoidable. The bug it fixes doesn't seem to have any security impact. Gbp-Pq: Topic debian Gbp-Pq: Name revert-bpf-one-perf-event-close-won-t-free-bpf-program-atta.patch --- include/linux/trace_events.h | 1 - kernel/events/core.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h index 60248d644b6..5012b524283 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -277,7 +277,6 @@ struct trace_event_call { int perf_refcount; struct hlist_head __percpu *perf_events; struct bpf_prog *prog; - struct perf_event *bpf_prog_owner; int (*perf_perm)(struct trace_event_call *, struct perf_event *); diff --git a/kernel/events/core.c b/kernel/events/core.c index f7051dfea20..8137820c6cd 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -8128,7 +8128,6 @@ static int perf_event_set_bpf_prog(struct perf_event *event, u32 prog_fd) } } event->tp_event->prog = prog; - event->tp_event->bpf_prog_owner = event; return 0; } @@ -8143,7 +8142,7 @@ static void perf_event_free_bpf_prog(struct perf_event *event) return; prog = event->tp_event->prog; - if (prog && event->tp_event->bpf_prog_owner == event) { + if (prog) { event->tp_event->prog = NULL; bpf_prog_put(prog); } -- 2.30.2